Software pipelining may be an efficient compiler technique that exploits instruction-level parallelism from loops. Conventional software pipelining may be limited to deployment in static compilers, which may not be suitable for dynamic compilation activities such as those involved in hardware/software co-design, dynamic languages, cloud computing and embedded systems.